product_id . '_activated', false, false ); add_filter( 'cartflows_admin_global_settings_data', array( $this, 'get_pro_global_settings' ), 10, 1 ); add_filter( 'cartflows_admin_global_data_options', array( $this, 'get_pro_global_options' ), 10, 1 ); add_action( 'cartflows_admin_save_global_settings', array( $this, 'save_pro_global_settings' ), 10, 2 ); } /** * Get_pro_global_options * * @param string $setting_tab tab slug. * @param string $action action name. */ public static function save_pro_global_settings( $setting_tab, $action ) { /** * Nonce verification */ if ( ! check_ajax_referer( $action, 'security', false ) ) { $response_data = array( 'messsage' => __( 'Nonce verification failed.', 'cartflows-pro' ) ); wp_send_json_error( $response_data ); } if ( isset( $_POST ) ) { switch ( $setting_tab ) { case 'offer': if ( isset( $_POST['_cartflows_offer_global_settings'] ) ) { // Loop through the input and sanitize each of the values. $new_settings = \Cartflows_Pro_Admin_Helper::sanitize_form_inputs( wp_unslash( $_POST['_cartflows_offer_global_settings'] ) ); //phpcs:ignore /** * Handled backward compatibility of `update_admin_settings_option` function. * * Old: \Cartflows_Helper::update_admin_settings_option. * New: AdminHelper::update_admin_settings_option. * Note: Remove after two updates. */ if ( method_exists( 'AdminHelper', 'update_admin_settings_option' ) ) { AdminHelper::update_admin_settings_option( '_cartflows_offer_global_settings', $new_settings, false ); } else { \Cartflows_Helper::update_admin_settings_option( '_cartflows_offer_global_settings', $new_settings, false ); } } break; case 'permalink': if ( isset( $_POST['_cartflows_abtest_settings'] ) ) { // Loop through the input and sanitize each of the values. $new_settings = \Cartflows_Pro_Admin_Helper::sanitize_form_inputs( wp_unslash( $_POST['_cartflows_abtest_settings'] ) ); //phpcs:ignore /** * Handled backward compatibility of `update_admin_settings_option` function. * * Old: \Cartflows_Helper::update_admin_settings_option. * New: AdminHelper::update_admin_settings_option. * Note: Remove after two updates. */ if ( method_exists( 'AdminHelper', 'update_admin_settings_option' ) ) { AdminHelper::update_admin_settings_option( '_cartflows_abtest_settings', $new_settings, false ); } else { \Cartflows_Helper::update_admin_settings_option( '_cartflows_abtest_settings', $new_settings, false ); } } break; default: } } } /** * Get_pro_global_options * * @param string $options options. * @return array $options Modified localized array options. */ public static function get_pro_global_options( $options ) { $settings_default = apply_filters( 'cartflows_offer_global_settings', array( 'separate_offer_orders' => 'separate', ) ); $offer_settings = AdminHelper::get_admin_settings_option( '_cartflows_offer_global_settings', false, false ); $offer_settings = wp_parse_args( $offer_settings, $settings_default ); foreach ( $offer_settings as $key => $data ) { $options[ '_cartflows_offer_global_settings[' . $key . ']' ] = $data; } $settings_default = apply_filters( 'cartflows_abtest_settings', array( 'override_permalink' => 'disable', ) ); $abtest_settings = AdminHelper::get_admin_settings_option( '_cartflows_abtest_settings', false, false ); $abtest_settings = wp_parse_args( $abtest_settings, $settings_default ); foreach ( $abtest_settings as $key => $data ) { $options[ '_cartflows_abtest_settings[' . $key . ']' ] = $data; } // Get license info. $options['license_status'] = self::$license_status; if ( 'Activated' === self::$license_status ) { $license_data = AdminHelper::get_admin_settings_option( 'wc_am_client_' . \CartFlows_Pro_Licence::get_instance()->product_id . '_api_key', false, false ); $options['license_key'] = preg_replace( '/[A-Za-z0-9]/', '*', ! empty( $license_data['api_key'] ) ? $license_data['api_key'] : '' ); } else { $options['license_key'] = ''; } return $options; } /** * Page Header Tabs. * * @param string $settings settings. */ public static function get_pro_global_settings( $settings ) { $settings['general']['fields']['pre-checkout-offer'] = array( 'type' => 'checkbox', 'name' => '_cartflows_common[pre_checkout_offer]', 'label' => __( 'Enable Pre Checkout Offers', 'cartflows-pro' ), 'desc' => __( 'If enable, it will add the Pre Checkout Offer settings in checkout step settings.', 'cartflows-pro' ), 'backComp' => true, ); $settings['general']['fields']['pre-checkout-offer-seperator'] = array( 'type' => 'separator', ); $settings['general']['fields']['ref-paypal-trns'] = array( 'type' => 'checkbox', 'name' => '_cartflows_common[paypal_reference_transactions]', 'label' => __( 'Enable PayPal Reference Transactions.', 'cartflows-pro' ), /* translators: %1$1s: link html start, %2$12: link html end*/ 'desc' => sprintf( __( 'This option will work with %1$1s PayPal Standard%2$2s & %3$3s PayPal Checkout%4$4s Gateways only. To know more about PayPal reference transactions %5$5s click here. %6$6s', 'cartflows-pro' ), '', '', '', '', '', '' ), 'backComp' => true, ); $settings['offer'] = array( 'title' => '', 'fields' => array( 'order-optoin' => array( 'type' => 'radio', 'name' => '_cartflows_offer_global_settings[separate_offer_orders]', 'options' => array( array( 'value' => 'separate', 'label' => __( 'Create a new child order (Recommended)', 'cartflows-pro' ), 'desc' => __( 'This option create a new order for all accepted upsell/downsell offers. Main order will be parent order for them.', 'cartflows-pro' ), ), array( 'value' => 'merge', 'label' => __( 'Add to main order', 'cartflows-pro' ), 'desc' => __( 'This option will merge all accepted upsell/downsell offers into main order.', 'cartflows-pro' ), ), ), ), 'order-doc' => array( 'type' => 'doc', /* translators: %1$1s: link html start, %2$12: link html end*/ 'content' => sprintf( __( 'For more information about the offer settings please %1$1s Click here. %2$2s', 'cartflows-pro' ), '', '' ), ), ), ); // Get license Key. $field_class = 'Activated' === self::$license_status ? 'input-field cartflows-license-key disabled' : 'input-field cartflows-license-key'; $settings['license'] = array( 'title' => '', 'fields' => array( 'license-field' => array( 'type' => 'password', 'label' => __( 'Enter License Key', 'cartflows-pro' ), 'placeholder' => __( 'Enter your license key', 'cartflows-pro' ), 'name' => 'license_key', 'class' => $field_class, 'readonly' => 'Activated' === self::$license_status ? true : false, 'desc' => sprintf( /* translators: %1$1s: link html start, %2$12: link html end*/ __( 'If you don\'t have License key, you can get it from %1$shere%2$s', 'cartflows-pro' ), '', '' ), ), ), ); /* Start-Pro-Feature */ $settings['permalink']['fields']['ab-testing-heading-seperator'] = array( 'type' => 'separator', ); $settings['permalink']['fields']['ab-testing-heading'] = array( 'type' => 'heading', 'label' => __( 'A/B test Pemalink', 'cartflows-pro' ), 'backComp' => true, ); $settings['permalink']['fields']['override-permalink'] = array( 'type' => 'checkbox', 'name' => '_cartflows_abtest_settings[override_permalink]', 'label' => __( 'Override Permalink for A/B test', 'cartflows-pro' ), 'desc' => __( 'If enable, it will use same permalink for all variants.', 'cartflows-pro' ), 'backComp' => true, ); $settings['permalink']['fields']['override-permalink-seperator'] = array( 'type' => 'separator', ); /* End-Pro-Feature */ return $settings; } }